"""
collections模块

namedtuple():命名元组
defaultdict():默认值字典.
Counter():计数器
"""
from collections import namedtuple,defaultdict,Counter
#namedtuple
Rectangle=namedtuple('Rectangle_class',['length','width'])
#类名                 描述类名，不能加空格         属性
r=Rectangle(10,5)
print(r.length)
print(r.width)

#通过索引(下标)的方式访问属性
print(r[0])
print(r[1])

#defaultdict:
#与dict接收的参数一样
d=dict([('name','andy'),('age',18)])
d={k:v for k,v in [(1,2),(3,4)]}
print(d)
d=defaultdict(int,name='Andy',age=10)#传参不要加括号
#print(d) defaultdict(<class 'int'>, {'name': 'Andy', 'age': 10})
print(d['name'])
print(d['age'])
print(d['g'])#不存在返回 0 ,并添加到字典中
print(d)

#自定义函数充当第一个参数
#要求：不能有参数
def f():
    return 'hello'
d=defaultdict(f,name='Andy',age=10)
print(d['sfd'])
print(d)

#Counter：计数器,括号里加可哈希的数据类型
c=Counter('abcdefabcccdd')
print(c)

print(c.most_common(3))#只看前三名,根据参数出现的次数计算

from collections import deque
q = deque(['a', 'b', 'c'])
print(q)
q.append('x')
print(q)
q.appendleft('y')
print(q)
q.pop()
print(q)

a=[1,2,3,4,5]
c=a.pop(2)
print(a)
print(c)






































